<script>
/**
 * 应用主文件
 * @author 王勇程 <laughskydragon@qq.com>
 */
import { checkUserStatus, checkVipStatus } from '@/api/user'

export default {
  onLaunch: function() {
    console.log('App Launch')
    // 初始化应用
    this.$store.dispatch('app/initApp')
    
    // 检查用户登录状态并更新用户状态
    this.checkUserStatusOnLaunch()
  },
  onShow: function() {
    console.log('App Show')
  },
  onHide: function() {
    console.log('App Hide')
  },
  methods: {
    // 启动时检查用户状态
    async checkUserStatusOnLaunch() {
      try {
        // 检查本地登录状态
        const isLogin = this.$store.dispatch('user/checkLoginStatus')
        
        if (isLogin && this.$store.getters['user/userToken']) {
          // 如果用户已登录，调用状态检查接口
          const userToken = this.$store.getters['user/userToken']
          
          const response = await checkUserStatus({
            user_token: userToken
          })
          
          if (response.code === 0 && response.data) {
            // 更新用户信息到store
            this.$store.dispatch('user/updateUserInfo', response.data)
            console.log('用户状态检查完成，信息已更新')

            // 调用VIP状态检测接口
            const vipResponse = await checkVipStatus({
              user_token: userToken
            })
            if (vipResponse.code === 0 && vipResponse.data) {
              // 根据需要处理VIP状态更新，例如更新store中的VIP信息
              console.log('用户VIP状态检查完成:', vipResponse.data)
            }
          }
        }
      } catch (error) {
        console.error('用户状态检查失败:', error)
        // 如果token无效，清除登录状态
        if (error.code === 0) {
          this.$store.dispatch('user/logout')
        }
      }
    }
  }
}
</script>

<style lang="scss">
/* 引入uView基础样式 */
@import '@/uni_modules/uview-ui/index.scss';

/* 每个页面公共css */
page {
  background-color: #F5F5F5;
}

/* 全局样式变量 */
:root {
  --primary-color: #FF4444;
  --secondary-color: #FFD700;
  --success-color: #00AA00;
  --error-color: #FF0000;
  --text-color: #333333;
  --text-light-color: #666666;
  --border-color: #E5E5E5;
  --bg-color: #F5F5F5;
}

/* 通用样式类 */
.text-primary {
  color: var(--primary-color) !important;
}

.text-success {
  color: var(--success-color) !important;
}

.text-error {
  color: var(--error-color) !important;
}

.bg-primary {
  background-color: var(--primary-color) !important;
}

.bg-gradient-primary {
  background: linear-gradient(135deg, #FF4444 0%, #FF6666 100%) !important;
}

.bg-gradient-gold {
  background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%) !important;
}
</style>
